﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace TowerDefenseXNA___Aula_1___1703
{
    class Fase_1
    {
        Song musica;
        SoundEffect efeitoSonoro;
        Torre torre;
        Torre torre2;
        GameWindow Window;
        Stage stage;
        Stage stagesky;
        public Fase_1(ContentManager Content)
        {
            
            

            efeitoSonoro = Content.Load<SoundEffect>("Blow3");
            stage = new Stage(Content.Load<Texture2D>("fundo"), Window);
            stagesky = new Stage(Content.Load<Texture2D>("fundocima"), Window);
            torre = new Torre(Content.Load<Texture2D>("fireman"), Window, efeitoSonoro);
            torre2 = new Torre(Content.Load<Texture2D>("fireman"), Window, efeitoSonoro);
            
            musica = Content.Load<Song>("Kalimba");

            torre2.Posicao = new Vector2(150, 150);
            torre2.jogador = 2;
            efeitoSonoro = Content.Load<SoundEffect>("Blow3");
        }
        public void Update(GameTime gameTime, KeyboardState teclado, MouseState mouse, KeyboardState teclado_anterior, MouseState mouse_anterior, GamePadState joystick, GamePadState joystick_anterior)
        {
            torre.Update(gameTime, teclado, mouse, teclado_anterior, mouse_anterior, joystick, joystick_anterior, Window, ref stage.bgSourceX);
            torre2.Update(gameTime, teclado, mouse, teclado_anterior, mouse_anterior, joystick, joystick_anterior, Window, ref stage.bgSourceX);


            if (torre2.Bateu(torre))
            {
                torre2.visivel = false;
            }
            else
            {
                torre2.visivel = true;
            }




            if ((teclado.IsKeyDown(Keys.M)) && (teclado_anterior.IsKeyUp(Keys.M)))
            {
                if ((MediaPlayer.State == MediaState.Stopped))
                {
                    MediaPlayer.Play(musica);
                }
                else if ((MediaPlayer.State == MediaState.Playing))
                {
                    MediaPlayer.Stop();
                }
            }
            if ((teclado.IsKeyDown(Keys.P)) && (teclado_anterior.IsKeyUp(Keys.P)))
            {
                if ((MediaPlayer.State == MediaState.Playing))
                {
                    MediaPlayer.Pause();
                }
                else if ((MediaPlayer.State == MediaState.Paused))
                {
                    MediaPlayer.Resume();
                }
            }
            if ((MediaPlayer.State == MediaState.Playing))
            {
                if ((teclado.IsKeyDown(Keys.PageUp)) && (teclado_anterior.IsKeyUp(Keys.PageUp)))
                {
                    MediaPlayer.Volume += 0.1f;
                }
                if ((teclado.IsKeyDown(Keys.PageDown)) && (teclado_anterior.IsKeyUp(Keys.PageDown)))
                {
                    MediaPlayer.Volume -= 0.1f;
                }
                if ((teclado.IsKeyDown(Keys.NumPad0)) && (teclado_anterior.IsKeyUp(Keys.NumPad0)))
                {
                    MediaPlayer.IsMuted = !MediaPlayer.IsMuted;
                }
            }
        }
        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            
            stage.Draw(spriteBatch);
            stagesky.Draw(spriteBatch);
            torre.Draw(gameTime, spriteBatch, torre.andando);
            torre2.Draw(gameTime, spriteBatch, torre.andando);
        }
    }
}
